Modern computing systems support a large number of applications serving a large number of diverse users. Even though hardware processing and memory has continued to increase in performance, software continues to outpace these advances in the number of new features that are developed to support new and existing applications. Using the cell phone as an example, many features are available for setting desired operations of the device including the type and loudness of a ring, phone directories, menu commands, inbox settings, display settings, security settings, and so forth. In addition to phone capabilities, other hardware features and associated software are beginning to appear on cell phones such as digital cameras and web services. In more complicated systems such as operating systems, software development systems, or advanced communications architectures, the number of settings to tune a particular environment to a particular user's taste or comfort level can be daunting.
In order to configure more complex systems, such as rule-based systems or statistically guided automated reasoning, according to desired preferences, users are often given the task of reading through a large digest of written material either electronic or paper and then experimenting with a system to see if the adjustments made are suitable. Such experimentation can be tedious and take more time than a user desires to invest in refining settings. As can be appreciated, this type of experimental learning process can be tedious and frustrating. In an alternative form of learning on a complex system, users are may be manually trained by another user, wherein the person supplying the training most often only conveys basic information about the system due to time constraints. Possibly worse scenarios also exist during manual training by a colleague. In these cases, the person supplying the training typically only conveys those features that are relevant to the person giving the directions. Thus, many users likely do not experience the full power and utility of a computing system and associated software.